万卷网> 电子学会考级 >C/C++等级考试 > 2026年6月电子学会青少年软件编程(C/C++五级)等级考试试卷

2026年6月电子学会青少年软件编程(C/C++五级)等级考试试卷
操作/编程 五级 2026 2026-07-25 10:29:37 92

一、单选题

1.

以下哪个问题不适合用双指针算法求解?( )

A.

 有序数组两数之和

B.

 链表中环的检测

C.

 反转字符串

D.

 01背包问题

2.

已知数组`arr[6] = {2,4,6,8,10,12}`,前缀和数组`preSum[0]=0`,`preSum[i] = arr[0]+arr[1]+…+arr[i-1]`,则区间[2,4](下标从0开始)的元素和为?( )

A.

 18

B.

 24

C.

 30

D.

 36

3.

STL中,用于在容器中查找指定元素的函数是?( )

A.

 sort()

B.

 find()

C.

 swap()

D.

 reverse()

4.

以下关于贪心算法的说法,正确的是?( )

A.

 贪心算法总能得到全局最优解

B.

 贪心算法的核心是每一步选择当前最优的选项

C.

 01背包问题可以用贪心算法得到最优解

D.

 贪心算法的时间复杂度一定比动态规划低

5.

在长度为n的有序数组中,二分查找的最坏时间复杂度是?( )

A.

 O(1)

B.

 O(log n)

C.

 O(n)

D.

 O(n log n)

6.

对原数组的区间[l, r]全部加上val,对差分数组的操作是?( )

A.

 diff[l] += val; diff[r] -= val;

B.

 diff[l] += val; diff[r+1] -= val;

C.

 diff[l] -= val; diff[r] += val;

D.

 diff[l] -= val; diff[r+1] += val;

7.

计算整数a的b次方,若使用快速幂算法,时间复杂度为?( )

A.

 O(b)

B.

 O(log b)

C.

 O(a)

D.

 O(1)

8.

以下哪个STL容器是基于红黑树实现的,元素自动有序且不重复?( )

A.

 vector

B.

 set

C.

 queue

D.

 list

9.

有递推公式`f(n) = 2*f(n-1) + 1`,`f(1)=1`,则`f(4)`的值是?( )

A.

 7

B.

 15

C.

 31

D.

 63

10.

以下关于`vector`容器的说法,错误的是?( )

A.

 vector是动态数组,支持动态扩容

B.

 可以用`push_back()`在数组尾部插入元素

C.

 可以用`pop_front()`删除数组头部的元素

D.

 支持下标随机访问

二、判断题

1.

`queue` 先进先出,队头插入元素,队尾删除元素。( )

A.正确 B.错误
2.

递推算法分为顺推和逆推两种,斐波那契数列是顺推的典型应用。( )

A.正确 B.错误
3.

二维前缀和可以快速求出二维数组中任意子矩阵的元素和。( )

A.正确 B.错误
4.

快速幂的核心是将指数分解为二进制,减少乘法运算的次数。( )

A.正确 B.错误
5.

二分查找只能用于查找元素。( )

A.正确 B.错误
6.

哈夫曼编码的构建过程中,每次选择权值最小的两个节点合并,使用了贪心思想。( )

A.正确 B.错误
7.

差分算法不能处理多次区间修改、单点查询类问题。( )

A.正确 B.错误
8.

快慢指针可以用于查找链表的中间节点。( )

A.正确 B.错误
9.

`string`类的`c_str()`函数可以将string对象转换为C风格的const char*字符串。( )

A.正确 B.错误
10.

map 容器存储键值对,键唯一不可重复。( )

A.正确 B.错误

三、编程题

1.

能量节点

题目描述

数轴上分布着 n 个能量节点,第 i 个节点的坐标为 xi 。

当两个节点的距离小于等于 d 时,会产生能量共鸣。

求一共有多少组节点会发生能量共鸣。

输入格式

第一行,两个整数表示 n 与 d。

第二行,n 个整数,表示 x1,x2,…,xn 。

输出格式

单个整数:表示有多少对点可以会产生能量共鸣。

输入样例

4 25
30 40 10 20

输出样例

5

说明提示

1≤n≤100,000,

1≤d≤1,000,000,000,

1≤xi≤1,000,000,000。

限制

时间限制:1000ms

内存限制:256MiB

2.

刷任务

题目描述

一共有 n 个小任务,第 i 个任务会消耗 ai 点体力、bi 点心神。

你可以自由安排任务的完成顺序,逐个依次做完任务。

当累计消耗的体力总和超过 xx,或是 累计消耗的心神总和超过 y 时,会立刻停下无法继续做事。

求:在运气最差、顺序最不利的情况下,你最少会完成多少个任务就被迫停止。

输入格式

第一行,三个整数表示 n, x, y

第二行,n 个整数表示 a1,a2,…,an

第三行,n 个整数表示 b1,b2,…,bn

输出格式

输出一个整数,表示最少完成的任务数量。

输入样例#1

4 7 18
2 3 5 1
8 8 1 4

输出样例#1

2

输入样例#2

8 30 30
1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1

输出样例#2

6

说明提示

1≤n≤2×105

1≤x,y≤2×1014

1≤ai,bi≤109

限制

时间限制:1000ms

内存限制:256MiB

公众号
客服 反馈
顶部